var Debug = (function(){
    var _tb;
    var Enable = true;
    var Clear = false;
    var ConsoleWindow = {
        width: "240px",
        heght: "120px"
    };
    
    //输出方法
    var trace = function(msg, newline){
        var _msg = "";
        if (typeof msg === "string" || typeof msg === "number" ||
       		 typeof msg === "boolean" || typeof msg === "function") {
            _msg = msg.toString();
        } else if (typeof msg === "object" && msg !== null) {
            if (msg.constructor == Array) {
                _msg = msg.toString();
            } else {
                for (var o in msg) {
                    _msg += o + ":" + msg[o] + "\r";
                }
            }
        } else {
            if (msg === null) {
                _msg = "null";
            } else {
                _msg = "undefined";
            }
        }
        
        if (Boolean(newline)) {
            _msg += "\r";
        }
        
        if (Enable) {
            if (!_tb) {
                var oDiv = document.createElement("div");
                oDiv.style.marginTop = "10px";
                if (document.body) {
                    document.body.appendChild(oDiv);
                } else {
                    window.onload = function(){
                        document.body.appendChild(oDiv);
                    }
                }
                _tb = document.createElement("textarea");
                _tb.style.width = ConsoleWindow.width;
                _tb.style.height = ConsoleWindow.heght;
                oDiv.appendChild(_tb);
            }
            if (Debug.Clear) {
                _tb.innerHTML = "";
            }
            _tb.appendChild(document.createTextNode(_msg));
            _tb.scrollTop = _tb.scrollHeight;
        }
    }
    
    //返回对象为函数方法
    return {
        trace: function(msg){
            if (arguments.length > 0) {
				var strmsg = "";
				for each(var str in arguments){
					strmsg +=str+" ";
				}
                trace(strmsg, false);
            } else {
                trace("", false);
            }
        },
        
        traceln: function(msg){
            if (arguments.length > 0) {
				var strmsg = "";
				for each(var str in arguments){
					strmsg +=str+" ";
				}
                trace(strmsg, true);
            } else {
                trace("", true);
            }
        }
        
    };
})();
